#include <stdio.h>
#include <string.h>

#if 0
什么是常量字符串
"abcd"
C 语言如何来处理常量字符串
C 语言将常量字符串存储于 data 的 rodata 段。处理为一个指向该段的一个指针。
char *p = "abcd";

不可更改
char arr[] = "China";
sizeof(arr)  == sizeof("China")  arr + 1  == "China" + 1
字符串放到字符数组中的等价关系
sizeof(数组的大小) >= sizeof(字符串的大小)
char arr[] = "China";


字符串的求长，拼接，复制，比较。   多次参加考试
原生
用函数库

           strlen  sizeof()
"China"       5       6
p             5       4
arr           5       10

abcd0
    efgh0

拼接和复制  待拼接源和复制源，要有足够的空间接纳新的元素。

#endif


int main()
{
    strcmp();
}



int main3()
{
    // 为常量不可复制
//    char *c1 = "America";
//    char *c2 = "China";
//    strcpy(c1, c2);

//    空间小于 不可复制
//    char arr1[] = "China";
//    char arr2[] = "America";
//    strcpy(arr1,arr2);

    char arr1[] = "abcdef";
    char arr2[] = "gh";
    printf("%s\n",arr1);
    strcpy(arr1,arr2);
    printf("%s\n",arr1);
    return 0;
}



int main2()
{
// 为常量不可拼接
//    char *p1 = "abcd";
//    char *p2 = "efgh";
//    strcat(p1,p2);
// 空间为指定不可拼接
//    char arr1[] = "abcd";
//    char arr2[] = "efgh";
//    strcat(arr1,arr2);
// 空间大小满足两个指针数组的大小，可拼接
    char arr1[10] = "abcd";
    char arr2[] = "efgh";
    strcat(arr1,arr2);
    return 0;
}
int main1()
{
    printf("%s\n","China");
    char *p = "China";
    printf("%s\n",p);
    char arr[10] = "China";
    printf("%s\n",arr);
    return 0;
}
